package com.hoshiicloud.suppplier.service.companyorganization;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hoshiicloud.goods.entity.spu.BaseSpu;
import com.hoshiicloud.suppplier.param.SupplierSpuDetailParam;
import com.hoshiicloud.suppplier.param.TenantSupplierGoodsParam;
import com.hoshiicloud.suppplier.vo.SupplierSpuDetailVo;
import com.hoshiicloud.suppplier.vo.TenantSupplierGoodsVo;

import java.util.List;
import java.util.Map;

/**
 * @author linjx on 2019/8/12
 */
public interface GoodsReleaseService {

    /**
     * 根据类目id,查询商品发布基础信息
     */
    Map<String, Object> queryBaseMessage(Long categoryId, Map<String, Object> tokenMap);

    /**
     *  租户供应商品发布商品
     */
    Boolean releaseGoods(SupplierSpuDetailParam spuDetailParam);

    /**
     *  分页查询供应商品发布的商品信息列表
     */
    Page<List<TenantSupplierGoodsVo>> listOfGoods(TenantSupplierGoodsParam supplierGoodsParam);

    /**
     * 查询需要编辑的商品的信息
     */
    TenantSupplierGoodsVo getNeedEditDate(TenantSupplierGoodsParam supplierGoodsParam);

    /**
     * 商品编辑
     */
    Boolean editForGoods(TenantSupplierGoodsParam goodsParam);

    /**
     * 删除商品信息
     */
    Boolean deleteReleaseGoods(TenantSupplierGoodsParam goodsParam);

    /**
     * 批量删除商品信息
     */
    Boolean deleteBatchGoods(List<TenantSupplierGoodsParam> goodsParams);

    /**
     * 查询需要报价的商品的BaseSpu信息
     */
    Page<BaseSpu> ListBaseSpu(TenantSupplierGoodsParam goodsParam);

    /**
     * 获得需要编辑报价的商品
     */
    SupplierSpuDetailVo getNeedEditOfferGoods(TenantSupplierGoodsParam goodsParam);

    /**
     * 编辑需要报价的商品
     */
    Boolean editOfferGoods(SupplierSpuDetailParam spuDetailParam);
}
